package LeetCode;

import java.util.Arrays;

/**
 * @author VX5
 * @Title: MJC
 * @ProjectName DataStructure
 * @Description: TODO
 * @date ${DAT}18:06
 */
public class interview57 {
    public static void main(String[] args) {
        int[] arr = {1,2,5,2};
        System.out.println(Arrays.toString(new interview57().singleNumbers(arr)));
    }


    public int[] singleNumbers(int[] nums) {
        int startNum = nums[0];
        for (int i = 1; i < nums.length; i++) {
            startNum ^= nums[i];
        }
        int oto = startNum & (-startNum);//这是一个以奇偶分组的一个标准，如果startNum为偶数，那么与负数想与就会得到一个偶数，如果是一个奇数就会得到1
        int ans1 = 0;
        int ans2 = 0;
        for (int i = 0; i < nums.length; i++) {
            if ((nums[i] & oto) == oto) {
                ans1 ^= nums[i];
            } else {
                ans2 ^= nums[i];
            }
        }
        return new int[]{ans1, ans2};
    }
}
